//
//  UITextField+Limit.h
//  Commom
//
//  Created by Clavis on 2019/11/18.
//

#import <UIKit/UIKit.h>

//1、密码输入框：只能输入大小写字母、数字、特殊字符；  【不允许中文】
//2、图形验证码输入框：只能输入大小写字母、数字；【不允许 中文 特殊字符】
//3、短信验证码输入框：只能输入数字； 【只能数字】
//4、其它输入框：只能输入大小写字母、数字、中文； 【不允许特殊字符】
typedef NS_ENUM(NSUInteger, SEGInputLimitStyle) {
    SEGInputLimitStyleNone,
//    SEGInputLimitStyleNoChinese,
    SEGInputLimitStyleNoSymbol,
    SEGInputLimitStyleNoClineseNoSymbol,
    SEGInputLimitStyleAllowNumber,
};

@protocol SGETextFieldLimitDelegate <NSObject>
- (void)limitTextFileDidChange:(UITextField *)textField;
@end

@interface UITextField (Limit)

@property (nonatomic, assign) SEGInputLimitStyle limitStyle; /// 限制输入的类型
@property (nonatomic, assign) NSInteger limitInputMaxLength; /// 限制输入的最长长度 [和代理有冲突]
@property (nonatomic, copy) void(^segTextDidChangeBlock)(NSString *text); //如果进行限制之后，文字改变就触发block
@property (nonatomic, assign) id<SGETextFieldLimitDelegate> limitDelegate;

//- (void)handleTextDidChange:(NSNotification *)notification;

// 配置手机号输入框限制
- (void)configPhoneInputLimitWithDelegate:(id)delegate;

// 配置密码输入框限制
- (void)configPasswordInputLimitWithDelegate:(id)delegate currentView:(UIView *)currentView;


// 配置图形验证码输入框限制
- (void)configImgCodeInputLimitWithDelegate:(id)delegate;

// 配置短信验证码输入框限制
- (void)configSMSCodeInputLimitWithDelegate:(id)delegate;

@end

